This would be much cleaner having two implementations - one for owned, one for unowned.