alternate invokation
own extend function