Includes functional tests.