Moved checker to its own class to avoid cyclic dependency