Improved design, we have to ensure that nobody has to touch the parent classes if a new image type has to be implemented.