refactored push and file