add profiling support