added interpreter profiling and timer function