The Validator class is messy and has some ugly methods