Why allocate this on the heap?