Bring back output and input gates with makeTarget, makeSource