new materials contributed by Tim Triche, some infrastructure for R package