modify to handle push images and videos