Entirely refactoring the way basic block inputs and outputs are built