update and make it work