better logic to populate item list