Refactored the configuration layer, and expose a 'configure' command