fixed, and some modified