from lifeng - all tasks done!