in order to fix function bug have to modify every thing...
haven't finished yet, check line after 92 in recursive.py