restructured for gem