add calculation procedures