Entry class

This adds the Entry class, which handles building the methods and setting the callbacks on the abstract class, instead of this being stuffed in private methods in the main class method module. I also renamed a few method params and temps for clarity.