fix and improvement