Experimented with view event handling (mainly refactoring) - needs unit testing.