implement checker