add gce and refactor