merged latest changes: shared_ptrs are automatically mapped to the same unique reference, so decoration will be preserved
resolved conflict: use new instanc etable