public static bool Connect(this IConnection connection, IHook one, IHook two) { IHook from; IHook to; Hook.GetOrderedIO(one, two, out from, out to); if (connection.AllowConnection(from, to) && connection.CanConnect(from, to)) { connection.From = from; connection.To = to; from.AddConnection(connection); to.AddConnection(connection); return(true); } return(false); }