more secondary calculations