rewrites view architecture to a more OOP philosophy