add some new features
cleanup project