explanation, some links added.