working provider, first iteration