public function __construct($callback)
{
if (!self::isValid($callback)) {
throw new InvalidException(sprintf('Callback should be a callable, %s given!', gettype($callback)));
}
$this->_callback = $callback;
}