It's long, but SO worth the time!