Need let* cases and while