primitive looper
merged