bug fixes, add support for returns expression