refactor to slideshow component