abnormal errors should throw
fix secret bug!