restructuration + more tests