for refactor2