Band Gap Engineering of 2D Nanomaterials and Graphene Based Heterostructure Devices