don't be clever
minor refactoring
use objc association api's directly
refactoring to adhere to conventions