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

I fixed that in a different way. No the config-aware-able should be explicit.