refactor/redesign checkers for better testing