This is a long-ish read but definitely worth it.