self-reproof