try using arena to save memory allocation