Rewrote property provider, add events to all objects.
Reorganizing things, add tests.