First commit.

Finished implementing a basic model and associated tests.