experimental support for custom return values