重构gem