Merge remote-tracking branch 'origin/new-class-design' into new-class-design