update over lots of work