add item handling
update tests
improve coverage
update js validation