drafted BitmapAllocator