Begin of new architecture based on lazy loading dll

- loads providers via Reflection
- makes providers simpler to test