Refactored a bit to add proper specs and defined factories with new conventions