Finished (hopefully the code)