refactor and better use of backbone