lots and lots, will document all the changes later