Refactored cavern rendering out into CavernRenderer