Refactored for nat