web reimplemented with backbonejs