Extracted the domain objects into separate namespace
Factored mapping by type name