Currently WildebeestApiImpl takes a PrintStream usually named "output" which is passed through various internal components so that they can log what they are doing.
The internals should not be coupled to writing to a PrintStream like this as it is not portable to other contexts - e.g. running within a GUI or behind a REST API.
Instead the WildebeestApi/Impl and internal components should fire events which bubble up to the interface level. In the case of the CLI the events would bubble up to WildebeestCommand which can then print to a PrintStream or stdout.