Generalize message interface and add standard I/O
Make CONSOLE_ARGS immutable
Initialize factories in class definition
Add stream for standard output
Add stream for logging