Extract common functions into a base prototype.
Add a license file.
Update copyright to "original authors"
Change many names to be more consistent and more friendly.
Extract search into a separate module.
Update to latest API.
Test and fix the search functions.