Reuse element objects to reduce the gc impact
Add some comments