Outline an approach to creating an reusable, extensible carousel.