adding WrongElementType exception
adding support for custom validation methods