missing a `var self = this;`