#18: Improving performance.
Changes:
- Created a Profiler class to allow extensions
- Removed global variables. Local variables are faster
- Stopped using inspect.getargvalues