incremental work
adding status and simplifying buf processing