refactored to backbone

complete rebuild