1. UPDATING PROTOCOL IMPORTANT
2. handling all posssible flows
3. handling write buffers