add - found a better pattern for test-able oop