broke out configuration stuff into its own class