Allow OnPublicCall to handle return values

See issue 77