refactor shift position