basic gui functionality finished