custom configuration factory