can we use `public_send` here.