added procedural method.