break up the view responsibility