Add a @todo about this method being too long.  We could probably refactor the inside of the try blocks to the generic subscription model.