added calculate_item