more internal checking