public void Move(string moves) { Directive directiveFactory = new Directive(); List <IDirective> moveList = directiveFactory.MakeDirectives(moves); foreach (var directive in moveList) { this._position = directive.Process(this._position); } }