Fullerene self-assembly and supramolecular nanostructures