procedural framework