fix mistake usage of self param in recursive func and [] as default param