I am done everything. This was quite an assignment