seperate pull and push and request