Stage 2

The final version of stage 2