This will take a bit of work, work I

can't do tonight, but maybe tomorrow.