code: function copy(source) {
      var destination;
      if (Type.isDate(source)) {
          return new Date(source.getTime());
      } else if (Type.isRegExp(source)) {
          return new RegExp(source.source);
      } else if (isConstructor(source)) {
          try {
              destination = new source.constructor;
              Object.keys(source).forEach(function (key) {
                  destination[key] = copy(source[key]);
              });
              return destination;
          } catch (e) {
              throw new Error('Core.copy: To many recursions on copy', e);
          }
      }
      return source;
  }
docs: @since 0.0.1
  @author Igor Ivanovic
  @function copy
  
  @description
  Copy data from source