doc
extracting a generic interface