additional internal validation