Code review tweaks + bug fixes

Unit tests
Now can bind against base properties
Now only bind against public settable properties