Oh, I may have insight since I first wrote this over 6 months ago (before I even saw your talk on sealed classes) on some potential refactoring tips and refactored a little but but not much. However, I feel like if I didn't have this string check, I'd have to wrap whens - is there a way to check if a Node has a child type but it is not an immediate child, or do we just keep on pattern matching down