AsYouTypeValidationTest + relevant classes implementation + some
refactoring