I'm wondering if this should be in a companion object of Index