implementing `let`