Refactored domain
Refactored domain tests
Merge branch 'NewStructure' into develop