note to self
Refactoring to use NodePreference