procedural decomposition