Simpler implementation of reposition()