implemented set! and begin procedure