layered debugging