updated & fixbug