Added a profiling framework