Self-Configuring Architectures