Following the example of signup.module, most of the logic for the module should be split out into include files. This should improve performance in all aspects of the module's usage.