backbone refactor to be more event driven