public static Monster CreateMonster(MonsterType monsterType)
        {
            Monster monster;

            switch (monsterType)
            {
            case MonsterType.Horse:
                monster = new Monster(10);
                // compose how the monster will behave !!!
                monster.AddAtackType(AttackType.Biting, 6);
                monster.AddAtackType(AttackType.Kicking, 6);
                break;

            case MonsterType.Orc:
                monster = new Monster(10);
                monster.AddAtackType(AttackType.Biting, 5);
                monster.AddAtackType(AttackType.Kicking, 5);
                monster.AddAtackType(AttackType.Punching, 5);
                break;

            case MonsterType.Crocodile:
                monster = new Monster(10);
                monster.AddAtackType(AttackType.Biting, 8);
                break;

            case MonsterType.Cow:
                monster = new Monster(7);
                monster.AddAtackType(AttackType.Kicking, 7);
                break;

            case MonsterType.MikeTyson:
                monster = new Monster(11);
                monster.AddAtackType(AttackType.Biting, 5);
                monster.AddAtackType(AttackType.Punching, 9);
                break;

            case MonsterType.Kangaroo:
                monster = new Monster(10);
                monster.AddAtackType(AttackType.Kicking, 5);
                monster.AddAtackType(AttackType.Punching, 4);
                break;

            case MonsterType.MantisShrimp:
                monster = new Monster(15);
                monster.AddAtackType(AttackType.Punching, 15);
                break;

            default:
                throw new ArgumentException();
            }
            return(monster);
        }