this feels better; also it allows nested types to be thoroughly analyzed (was an unreported bug)