better calculations