Update models, add new routes, and update tests