Refractor and clean up the ad hoc solution
Return an result at submission instead complete submission