calculations work so far