adding low-level image processing