add some more comments and use backbone properly