initial implementation
fix namespaces and batch class.
fixed tests, reverted accidental change.
fix coding style issues
Inject settings
make settings class final.