like BackboneJS with TypeScript