add basic shift and add implementation