less 2d alloc