* code for task#450.
 * fix bugs.