Refactor and redesign domains

Why remove these annotation?