create builder pattern for configuration