implement loop without super call