+ changed prototype inheritance model to object.create to prevent extraneous defaults entering from the prototype
+ updated extend method so default arrays and objects aren't shared
need to build to test