check first refactor