updated for shifts still need for memory shift