noncontig allocation function added