calculate() work