         when 1
           opt = opt.replace(/^-/, '')
           if opt.length < 2 # short
-            dRef = @_decodeRef("#shortBeat.#{opt}")
+            ref = @_short[opt]
           else
-            dRef = @_decodeRef("#halfBeat.#{opt}")
+            ref = @_half[opt]
         when 2
           opt = opt.replace(/^--/, '')
-          dRef = @_decodeRef("#longBeat.#{opt}")
+          ref = @_long[opt]
       _ref = @_checkOption(dRef)
       _ref.name = dRef.child
       return _ref)

        child: _refchild
      return _ref

  _checkOption: (decRef) =># decRef -> decoded ref
    ref = @[decRef.parent][decRef.child]
    if ref is undefined
      if decRef.child.length < 2
        console.error("#{@app}: invalid option -- '#{decRef.child}'")
        process.exit(1)
      else if decRef.child.length > 1
        dash = if decRef.parent is '_half' then '-' else '--'
        console.error("#{@app}: unrecognized option '#{dash}#{decRef.child}'")
        process.exit(1)
    else
      return ref

  _parentError: () =>
    if @_parent is null
      err = 'Bebopt: null parent ref: cannot apply'
      throw new Error(err)

  help: (msg, isHelp) =>
    @_parentError()
    ref = @_decodeRef(@_parent)
    if typeof msg is 'boolean'
      @[ref.parent][ref.child].desc = ''
      @



  op: (code, help) =>
    if @_parent is null

          throw new Error(err)
        return false

  longBeat: (_name, fn) =>
    { op, name } = @_makeOpt(_name)
    @_beatError('long', name)

    if fn is undefined
      @_long[name] = @_parent
    else
      @_long[name] =
        cb: fn
    @_parent = @_long[name]
    return @

  _makeOpt: (name) ->
    return {
      op: name.replace(/^.*([:]*)$/, '$1'),
      name: name.replace(/^(.*)[:]*$/, '$1')
    }

  shortBeat: (_name, fn) =>
    { op, name } = @_makeOpt(_name)
    @_beatError('short', name)

    if fn is undefined
      @_short[name] = @_parent
    else
      @_short[name] =
        cb: fn
    @_parent = @_short[name]
    return @

  halfBeat: (_name, fn) =>
    { op, name } = @_makeOpt(_name)
    @_beatError('long', name)

    if fn is undefined
      @_short[name] = @_parent
    else
      @_short[name] =
        cb: fn
    @_parent = @_short[name]
    return @

  _decodeRef: (ref) ->
