Instead of mixing user output (prints, error messages, ...) into the service layer, we should use exceptions and clearly separate the CLI layer from that. This should also improve testability since we no longer would have all of the CLI output in our tests.