use complete, not perform()