first commit

some bugs need to be fixed, this is the first commit, many features to
be implemented