overhaul status function
implement soft_fail function
fix fail and soft_fail