complete image manipulation