A large work in progress.