Lots of changes committed here.