Pools, variants and other ideas.
Added more tests.