Princples of Self-Assembly