fixed set! and def