Refactor. Add test and example.
Add object listening support.
Update TODO and README.
Docs.
License and release min version.