improved handling of constructor extensions
added logging handlers (ala python "logging" module) and moved default to null output