first commit
merge the codes from two platforms