Should prolly use 'n' instead of 'self' as most of our code is now switching to the more idiomatic method target naming.