decoupled the view and Controller