First push: everything is untested beyond one of the methods matching the R version