added some more formatting
moved the jsx and react stuff into its own file