stage 4 implemented