Use `:public_send` for safety