rethinking the controllers and general clean up