I feel like this will become a flowchart one day.