Synthetic strategies for self-assembled schiff-base macrocycles