add self to callback