Refactored relationships to have constructors
Implemented generic relationship instantiation