Add support for both primitive and object types in the properties.
Fix a bug where the code was using behavior subjects unnecessarily. Add test case for struct properties.
Add support for all object types, including strings, except for structs that aren't marked with the IStruct attribute.
Remove unused code