change name and refactor