Low level ops: 1. Optimize in place adds so that we don't store back the result unless the pointer changed. 2. Expose ref counting so we can eliminate unneeded incs/decs High level ops: 1. Optimize attribute/global access by eliminating where possible - need to store dependencies - need to be able to revert in some way if dependency is broken 2. Optimize generators in for loops, and perhaps functions that return lists can be converted to generator form 3. Optimize attribute access to slots form where possible - begin with self pointer - experiment with ways to improve other parameters 4. Consider psyco style partial evaluation 5. Ways to improve dynamic dispatch: - PIC - interface tables? (see ObjC/C#/Java implementations)