This has been a LOT of work.