completed GUI & input