Updated with public_send and event validation