using intermediate layers