- rewrite existing methods in terms of the new ones
- don't allocate multiple 0-length arrays
nits:
- clarify a couple of doc comments e.g. using `<paramref/>`
- move an error message into a resource
- pass parameter names into new resource
- rename parameters for consistency e.g. `inputLength` -> `count`
- name literal `int` parameters
- more `var`