update
hammer function :D