dropped out the configuration API to keep the actual configuration implementation to the consumer