checked for correctness