use self()