complete implementation for arbre =)