added support for return