implementing shift register support