refactor find