skeleton new version
fixed observer conflit