types of heterostructures