Changed success to be a map rather than record
Added stackless versions of Alex's work.