add some tests, flesh out and cleanup Model and Schema implementations