adding the nat pop/popping/popped, and refactoring flows as a result