completed, last commit, split up later