docs: function (key) {
          var next = false
          if (~key.indexOf('.')) {
              var tokens = key.split('.');
              key = tokens.shift();
              next = tokens.join('.');
          }
  
  
          var accessor = getAccessors(this)[key],
              val;
          if (accessor) {
              val = accessor.target.get(accessor.key);
          } else {
              // Call getting function
              if (this['get_' + key]) {
                  val = this['get_' + key]();
              } else {
                  val = this[key];
              }
          }
  
          if (next) {
              return val.get(next);
          } else {
              return val;
          }
      }