add a view factory for each level of abstraction (aka view/layered view/image view)