functioning gui