use buffer for performance enhancement
version up