List : Implementation + tests