gonna post the whole thing all at once