use cl-letf instead of flet