should refactor