cleanup listitem new/delete to simplify implementation
implement version 2 functionality
test version 2 functionality