add self as arg