smaller boundary effect
shift looping