First try at recursion improvements
Fully recursive !
Code cleaning