new allocators and bugs fixed in construct() and destroy()