add new class & bug fixing & customize error messages