push all necessary