smart self-assembly