refactor with gae-ng-seed as the base