modified evalEvent and it's helper to deal with errors