making the classes used for autofilling e.t.c. generic, this enables them to be easily extended
Major cleanup of classes in the request package.