added inspiration from cqengine and more thoughts on providers