public virtual void Operation()
 {
     implementor.Operation();
 }
 public virtual void DoWork()
 {
     position = implementor.Operation(position);
 }