Make the structure of Terrain extensible