refactor setup_slot_select to reuse restore_slot_select for better consistency; add converter method to manipulate selected slot: string <-> matrix; add matrix diff to track changes in selected slot