combined all 3 checking methods into one big method