add client/server push logic