divide problemService into testable parts
example of splitting service and testing with mocks