finish let define set! function