2.1.1
2.1.1
Added some comments and renamed some functions.

Generated fuctions should have uniq names that make their
circumstances/identity clearer while debugging.
more renaming
comments and make a cached method more cachey.