lots of model methods, docs, and better organization