added gui and completed tests