Added documentation and tests to model
Added more tests
Added more documention
Changed function to be modifyable
Clean now working
Merge branch 'clean-and-test' into typing