Needs doctests and examples.