implement checks