Added View Factory
Added View Factory types
Added View Factory impl
Fleshed out classes
Fleshed out classes