lib/ProfileObject.js
function( o ) {
		// Don't extend 'depends', extend only 'extends'
		if (this.extends) {
			this.embed = o.embed.concat(this.embed);
			this.properties = o.properties.concat(this.properties);
			this.postInit = o.postInit + this.postInit;

			// Replace init & Factory if different
			if (this.init === "default") this.init = o.init;
			if (this.factory === "new") this.factory = o.factory;

			// Replace default property assigned if not defined
			if (!this.propAssign) this.propAssign = o.propAssign;

			// Implement undefined extended property assigners
			for (var k in o.propCustomAssign) {
				if (!this.propCustomAssign[k]) {
					this.propCustomAssign[k] = o.propCustomAssign[k];
				}
			}
		}
	}
function( o ) {
		// Don't extend 'depends', extend only 'extends'
		if (this.extends) {
			this.embed = o.embed.concat(this.embed);
			this.properties = o.properties.concat(this.properties);
			this.postInit = o.postInit + this.postInit;

			// Replace init & Factory if different
			if (this.init === "default") this.init = o.init;
			if (this.factory === "new") this.factory = o.factory;

			// Replace default property assigned if not defined
			if (!this.propAssign) this.propAssign = o.propAssign;

			// Implement undefined extended property assigners
			for (var k in o.propCustomAssign) {
				if (!this.propCustomAssign[k]) {
					this.propCustomAssign[k] = o.propCustomAssign[k];
				}
			}
		}
	}
Extend our properties based on specified object