Huge rewrite the work with the prototypical inheritance ideas