JavaScript Inheritance Framework