public List <RoadConnectorSide> findFreeSides(RoadConnectorSide currentSideInUse = null) { List <RoadConnectorSide> sides = new List <RoadConnectorSide>(); foreach (var side in GetSides()) { if (connectedPorts == null) { sides.Add(side); } else { var amount = connectedPorts.Count(tf => tf.Value == side.GetPath()); if (amount < 2) { sides.Add(side); } } } return(sides); }