Surface Functionalization of Graphene-based Materials