fixed bug: shifts were getting applied inplace to references to body
locations, so they were applying multiple times