merge with new gui subsystem