Lots of cleanups (ill tested) - inspired by email / example code from sterl - to BlockAllocated