Nanoscale self-assembly: concepts, applications and challenges | Synapse