split off Check module, and reorganized