broke out app into its own file