refactored buffer parts, more broken up like the standard ones