remove redundant steps; add getRegion