added view objects, refactored