Extract interface

Extract an interface for configuration, for it to be extensible in future.
@owolabileg  please review,  thanks!
Hi Dwight,

Thanks for the review. We plan to have other form of configuration, such as a XML based configuration. That's why I extracted this interface.

Qingzhou