refactoring 2
prototype modify