improve push's file handling