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

Should be ok