implement stage 0