update_item and other refactorings continued