VIVO-848 move the image processing code behind an interface