Wow this is going to be a lot of work.