non recursive make
gnore++
factorize code, remove some dependencies