Made Image class way more modular and object oriented

Could not test it really yet because unit tests are really almost impossible without proper dependency injection...
This would be always overwritten 3 lines after. I think the removed `return` statements in this method should be restored.