unsure if inputs/outputs are assigned in the right order every time