add gui infrastructure