added extra options for field validators
refactoring
added validation implementation including user messages