The impossibility of statically determining the behavior of complex systems that interact at runtime with heterogeneous devices and remote entities, may lead to unexpected system failures and performance degradation. Recently, selfadaptive applications have been recognized as viable solutions for dealing with systems where size and complexity increase beyond the ability of humans. However, selfadaptive solutions have been always studied in isolation, only involving single layers of the system (e.g. operative system, middleware, firmware, hardware). In this paper we discuss our novel idea of multi-layers deep adaptability of complex systems. We present an integrated approach for designing and coordinating applications with three-layers of self-adaptation. The solution proposed is based on specialized sense-plan-act control loops that interact each others to monitor both specific parts and also the global behavior of the system. These control loops sense unexpected behaviors that can ...