shiftUp still needs testing but looks good so far