some mistakes left