documentation update

- Add examples to README
- Add lots of property documentation
- Add @private tags where necessary