calculation implemented