handle multiple ways of hiding primitives