validator interface / abstract class