image can clear itself
image regions can be filled
code refactored