replace self into this