implementing gui