added region factory