AsYouTypeValidationTest implementation

AsYouTypeValidationTest + relevant classes implementation + some refactoring