view and controller overhaul