small refactor, use compose for world generation