Introducing code package
Refactoring domain field to use type safe traits in favor to manually added properties for greater flexibility