fix soundness bug of type observer, and add an interface for duplicated fields
resolve conflicts