Rename and refactor implementation