Profiling, Refactoring & Design Patterns