fix a few things about shifting