closes #8 views refactored into subviews where appropriate