mostly complete datapath