This introduces the API flow. (DON'T MERGE, JUST REVIEW)