bunch of refactor
All output formatting is moved to a separate class
testCase -> testVector rename for brevity
some java docs