make this testable