refactor view widget
add per view overlay
factor out View class