refactor2!