decoupled complete