Built-in loops allow versatility in domain-domain interactions: Lessons from self-interacting domains