support throwable in return
Add test for throwable return