fix and refactor