loop framework