Adaptive and reconfigurable systems