At last, a working version, basic, but still.