make it testable (unit)