WIP: Component view framework

where possible, use ComponetSupport