first implementation of the shift-add-pipe