Model refactor issue #715

Closes #715