doesn't overwrite nph()