Added IMonster interface, optimized the existing interfaces, removed IShootable methods from the Unit class and optmized polymorphism.