temporary commit: move buffer logic et al to service