initial commit of source files directly from CodePlex (with some minor cleanup/formatting)