reuse object instance to avoid GC tax