first implementation completed