moved push and intersection to seperate files