After 300 hours and 13k, I'm finally finished. (I think)