fix bug and new feature