update terrain

add terrain rules and implement to the terrain classes