adding shift-in register stuff