First semi-complete version.