public TResult Find(Node start, IDirectionData data)
        {
            var wires         = data.Data.Select(wire => _parser.Parse(wire));
            var nodePorts     = wires.Select(c => _mapper.Map(start, c));
            var intersections = _finder.Find(nodePorts);

            return(_calculator.Calculate(start, intersections));
        }