Initial untested version.