Programming.
(flipflops). One big open point that I can see here is that we need to specify the control inputs to the ALU. To that purpose, we need to know exactly which operations the ALU needs to be able to perform. May be a matrix (instruction vs. functionality) could be a way to collect that information.