modify calculate