Commit some new features

some new features inside