refactor fore