changed several controls to have better seperation of view and viewmodel