strong type detection