finished controller, model, and communications