Instance methods get defined with #define_singleton_method
We must create an instance here
We cannot set the mode and return the out object in one step, so we need to do it in two steps
Removed all the "mode" crap from the output class
Moved code for better logical order
Simplified code
Added some debug output
Renamed to new naming scheme