Ver1.0 Semi--complete