start refactoring: add ImageProcess