Extend LoopProvider

Finish LoopProvider including unit tests.