Refactoring: improved structure of the code, extracting domain namespace.

- controllers moved to a separate namespace
- moved domain object do domain namespae
- improving structure of the code