I notice we are always checking for size == 1 and I don't see where we remove images from imageSources.  What if a user calls setImage() multiple times?  Will this be handled correctly?