refactored checker again