implement checking