update mistakes
update function
update closure