moved benchmarked functions to their own file