Another implementation of Generics, need to fix Clone() in PlaningAction.Execute()