implemented Nat Pagle

with some additional code clean up