wrap views into well constructed constructors and clean up the code a little bit