require buffer