1. Create a program with the following OO structure - you do not have to implement any of the methods other than constructors to fill in some default data. You should implement the rest of the methods with a Console.WriteLine to indicate that it has been called. Within a UNIVERSITY there are 4 DEPARTMENTS MATH, ENGLISH, GEOGRAPHY, COMPUTERSCIENCE Each DEPARTMENT has up to 10 STAFF There is a DEAN, PROFESSORs, ADMINISTRATORs and RESEARCHERs All Staff should have a name and salary Professors should have a Class Researchers should have a ResearchSpeciality which is a fixed set of research areas represented by an enumeration Deans, Professors and Researchers should implement an ITeachable interface which contains the Teach() method Deans and Administrators should implement an IAdmin interface which contains the Administrate() method Pay special attention to the IS-A relationships and the HAS-A relationships and implement things correctly. You should determine reasonable types for all properties not otherwise specified and initialise things with sensible defaults. Your constructors should have reasonable parameters to set up the type where you cannot simply use constants. var u = new University(); Console.WriteLine(u.Department[2].Staff[3].Name); u.Department[1].Staff[0] = new Researcher("Andy"); You should create additional test code to make sure that all of the properties and methods are available 2. Create a class for an inventory system for an RPG. Your solution should contain the following classes •An Interface called IContainer - items that implement IContainer can have other things put inside them ◦Add method - adds an item to the container ◦TotalCount property - returns how many items are in the container including any containers inside ◦TotalWeight property - returns the total weight of the container including any containers inside •A class called Inventory that implements IContainer ◦The constructor should pass in the number of items in the inventory •An abstract base class called Item ◦Each item should have a cost and a weight property •Several inherited objects from a typical RPG. Each item should have a different cost and weight •A BagOfHolding class which inherits from Item and implements IContainer You should write some test code to test all of your classes. For example it might look something like this. Make sure that you test the recursive TotalCount and TotalWeight methods var inventory = new Inventory(3); inventory.Add(new Sword()); inventory.Add(new Potion()); var bagOfHolding = new BagOfHolding(4); inventory.Add(bagOfHolding); bagOfHolding.Add(new Sword()); Console.WriteLine( "The number of items in the inventory is {0} ", inventory.TotalCount); //There are 5 items in this example Console.WriteLine( "The total weight of the inventory is {0} ", inventory.TotalWeight); //Weight will depend on the weights of each item