first version with prop sync and object sync