test refactoring
a lot more test refactoring
eliminate indirect calls