Almost done, just need to fix the exit condition and add two more components