refactoring: using nth_cons_list<>()
refactoring: rewrite let