added a timeit function