First commit.  Code is complete, but has had limited testing.