Fixed bug where state of components was being updated too soon. If 2 outputs depend on the same D flip flop, the first output would evaluate with the DFF's correct state, and the second would evaluate with its updated state. This was a bug - the state of the DFF should not be updated until the end. Solution was to add a "state buffer" to store future state changes, and commit them at the end