generic update
finished some stuff, not all done