There's a lot of `var self = this`. Can you try to minize them to a minimum? Prefer `.bind(this)` to keep context where possible.