improve and correction