TECH: moved the model construction out of the model objects to separate them from the Annotations. Next step, use the spring annotations instead of the custom annotations.