? Maybe you can add more comments in here explaining what all the different try/catches are doing