refactoring spec models into own package
more refactoring