Cleaning up the models a bit, returning a singleton that holds the model context and returns promise bound query methods.