code: function Vessel(dispatcher, target, config) {
    var _this = this;
  
    _classCallCheck(this, Vessel);
  
    this.__dispatcher = dispatcher;
    this.__target = target;
    ['width', 'height', 'position', 'display'].forEach(function (key) {
      _Object$defineProperty(_this, key, {
        get: function get() {
          return this.__dispatcher.dom.getStyle(this.__target, key);
        },
        set: function set(value) {
          if (isNumber(value)) {
            value = value + 'px';
          }
          if (!isString(value)) {
            throw new Error('The value of ' + key + ' in ' + this.__target + 'Config must be string, but not ' + (typeof value === 'undefined' ? 'undefined' : _typeof(value)) + '.');
          }
          this.__dispatcher.dom.setStyle(this.__target, key, value);
          // return value;
        },
  
        configurable: true,
        enumerable: true
      });
    });
    deepAssign(this, config);
  }
docs: base css controller for container and wrapper