using Preconditions
ErrorHandler is final now