revise image functionality