Add precise definitions and tests.