provide and extends base function