I don't call scratch(my_cat, me) directly, instead I call me.kick(my_cat) which results in my_cat(scratch,me).