basic yield loop