Added some of our main data structures

and a unit test for ElectiveRequirement