Introduced a profiler, permutation generator and some demos of the advantages of caching/memoized function calls