Use a tag in the bottom bit to distinguish grains and blocks in the free list. This results in much simplification of the code.