Learning Complex Causal Structures