code: function extend(destination, source, deepCopy) {
      if (Type.isUndefined(source)) {
          return extend({}, destination, false);
      }
      if (Type.isObject(destination) && Type.isObject(source) && !Type.isArray(source) && !Type.isArray(destination)) {
          Object.keys(source).forEach(function (key) {
              destination[key] = Type.assert(Type.BOOLEAN, deepCopy) && !!deepCopy ? copy(source[key]) : source[key];
          });
      } else {
          throw new Error('Core.extend:  invalid source or destination type:');
      }
      return destination;
  }
docs: @since 0.0.1
  @author Igor Ivanovic
  @function Extend
  
  @description
  Extend object