1. add test case when passing in regular functions into co
2. add try/catch around invoking passed-in fn to catch possible errors.