private TypeTransfer SeekTransfer(PositionType from, PositionType to)
        {
            TypeTransfer transfer = m_transfers.FirstOrDefault(o => o.From == from && o.To == to);

            if (transfer != null)
            {
                return(transfer);
            }

            transfer = new TypeTransfer(from, to);
            Stack <TypeTransfer> transferStack = new Stack <TypeTransfer>();

            if (SeekTarget(transferStack, from, to))
            {
                foreach (var t in transferStack)
                {
                    transfer.AddTransfer(t);
                }
            }
            m_transfers.Add(transfer);
            return(transfer);
        }