resolves #5 and resolves #6 - add model test spec and better factories