This method could be called many times during simulations. Isn't it inefficient if we recompute it every time?