update val function