First commit, a preliminary version.