further refactoring + new unit tests
fixed some bugs
minor refactoring + documentation
added custom exception for invalid JSON configuration files