done and very functional.  comments and source could use some cleaning