Most (90%) of the second recipe, covering asset upload.