added signle thread synchronized provider