only calculate extents once for each model