implement entity event flow