- component handler refactor