profiling and testing added