redesigned templates, made getRegions() public (needs consideration)