make it really testable