timing seems correct in simulation. tristate buffers seem to work. not yet tested on actual circuit