add compound type support