Finished initial version.