modularized validators
modularized error classes