about to refactor2