generalized block traits for variability to recurse only one level at a time