Add Branch control and further flesh out controller/datapath