configuration refactory