separated open-project into its own file