pull down to refresh

Think about describing and designing the protocol like networking layers. Create clear separation between them such that you can replace a layer with another compatible layer.

It will make explaining/understanding it easier and affords for you doing something silly in one layer that doesn't invalidate the whole stack.