cleanup
cleaner implementation, putting the entire onus on the potential detail view controllers.
Borrow one little tweak from Hegarty's version to make this generic and defensive.