finish 2
fix bug