Understanding nanoparticle aggregation