I'm wondering if this shouldn't simply be a method of ``Entity``...