self-perfecting