reworking for GUI-centered control