This is too voodoo. Please expand this into the long, standard, annoying class definitions. This is very hard to read.