implemented using scope, bind(this) not needed