added (untested) page allocator