first commit, almost everything done.