public refactor