refactor image to image interface