initial commit, parts 1-4