moved initialization into its own module