region function done