controller, events, listener, angular update stuff