shifting as you go, revering to dirty due to um interactions