implemented let and cond