attempt to refactor the backbone events