minor cleanups

- move NOTICE to repo root
- remove duplicate LICENSE
- fork/changes mentions and attrubution to original project
- reduce class visibility where possible
- get rid of/flatten some useless class hierarchy