Refactor and redesign domains

Use new line to separate declaration