more NRE abstraction