first commit, lots bug to be fixed
first code commit