Big second commit. More smaller ones from now on.