pull block out into its own fn