Push Logic Gate

Add the LogicGate function and it's decendents