avoid reusing buffer