No copy

1. fix #1683 
2. reduce allocation on good path.