region generation