add some new features
todos