This is a lot of work.