add support for profiling