Updated the requirements and removed the need for the metaclass, the generator will handle all of the dirty work when it comes to encodeing/decoding