attempt 2 at cm alloc