This will require a lot of work.