add const
add error
add i18n
Improve the implementation method