push: restructure