Issue #10: moved view-listener assignment to controller. Tweaked encapsulation of listeners - attributes are now all set to private. Minor code cleanup.