add self type constraints