Refactor image service

Here is an idea of refactor I want to perform. Everyone is welcome to discuss it.