added closure
added version