self-configuring architectures