Refactoring to better support configurability
...