NOTE: The terms annotation and tag are freely interchangable. Their varying use simply reflects the evolution of the code.