handle refactor and more impl