a boatload of changes, not sure how many I will keep