added soften helper