Added a way to handle different kinds of sets

We just make a new class for every set, with it's own "generate_pack" function, and check what kind of pack it is in 'sort_sets'.