We can split this method up in a few distinct steps.