huge rewrite - add biome functions