Properly handle item parsing, some API cleanup