finished.
some error to fix