Improved API: using interfaces to get configurations to allow for IoC