update+add new feature