base for complete function extension