terms should be in alpha order