primo: shiftIn and shiftOut (untested)