first complete image implementation