Refactoring PushPull and example added