improving kernel allocator