added custom string allocator