fix bugs item list.
add some tests