bug: this -> self