Initial implementation.
Add docs.