A first commit with  the code in an almost final version