Add controller, model, view, and binder objects to separate the concerns more cleanly.