Models make themselves in factory
huge pr
Merge pull request #7 from cfralick/feature/improve-factory-method

make factory method a little better