recon 3 casts is faster than 1 cast and a pointer alloc