Move strings to resx
Exception -> InvalidOperationException
Simplify ServiceProvider by using GetMethodInfo for Monitor.Enter
WIP