pass self to proc