 
 # Base Implementation
 class DebugBase extends Logger
+  initialized = false
+  isInitialized: ->
+    [r ,initialized] = [initialized, true]
+    r
+  init: ->
+    @log "Debug Mode"
+    if extraOpts.size is 1 then @_log "Extra Option: #{process.env.DEBUG_EXTRA}"
+    else if extraOpts.size > 1 then @_log "Extra Options: #{process.env.DEBUG_EXTRA}"
+
   setEnabled: (b) ->
     enabled = b
     Debug.wrap {enabled: b}

  enableExtra: (tag) ->
    console.assert tag, 'Are you kidding me? What do you want to enable?'
    return (Debug.wrap 'Nothing happened') if !tag
    @_addExOptHandler tag
    extraOpts.add tag.toString()
    Debug.wrap {enabledExtra: tag}
  disableExtra: (tag) ->

    Debug.wrap {disabledExtra: tag}
  isExtraEnabled: (tag) ->
    return false if !tag
    @extra tag
    extraOpts.has tag
  getAllExtraOptionsAsArray: ->
    Array.from extraOpts
  extra: (tag) ->
    if !@ex[tag]?
      Object.defineProperty @ex, tag,
        value: new ExOptHandler
