Could you add some commentary to this function explaining that the `addr` argument also may become a string one day?