public function __call($method, $args)
{
if ($args === NULL) {
$args = array();
}
return $this->then(function ($result) use($method, $args) {
return all($args)->then(function ($args) use($result, $method) {
return call_user_func_array(array($result, $method), $args);
});
});
}