// === Core ===

function Extend(element, source) {
  for (property in source) {
    element[property] = source[property];
  }
}

var Class = {
  create: function() {
    return( function() { this.init.apply(this, arguments)} );
  }
}

function DefineClass(source) {
  var NewClass = Class.create();
  Extend(NewClass.prototype, source);
  return(NewClass);
}

