Improved surpass() and will now account for initial payment and withdraw
using the normalizedcostdifference() proposed on the spec