> perhaps we need to cache these values if it is called every time a new Contact is accessed

Yes I will add caching soon.