use validator interface instead of concrete class
make constructor arg optional again
Merge branch 'fix/abstract-validation' - closes #3