WIP: Component view framework

why is this abstract?