implemented a gui