add new method and modify