use decl-and-define at the innermost point