WIP commit.  The test method is broken but the rest seems to be working.