Initial commit.  It compiles, but has not been tested.