Prototype Optimization

Changes many classes methods to be stored in prototypes instead of
instances