event flow implementation done