implement button & gui manager