Add a procedural interface

Signed-off-by: Christoph Höger <christoph.hoeger@tu-berlin.de>