First commit. Note : this doesn't compile. (Yeah, I know, it's a shame).