rewrite and update version to 1.0