public function addAsset(array $asset)
    {
        if (!isset($asset['input'])) {
            throw new \InvalidArgumentException('Asset needs an input.');
        }
        if (!isset($asset['name'])) {
            $asset['name'] = uniqid();
        }
        if (!isset($asset['filter'])) {
            $asset['filter'] = array();
        }
        if (!is_array($asset['filter'])) {
            $asset['filter'] = explode(',', $asset['filter']);
        }
        if (!isset($asset['options']) || !is_array($asset['options'])) {
            $asset['options'] = array();
        }
        if (!isset($asset['options']['output']) && isset($asset['output'])) {
            $asset['options']['output'] = $asset['output'];
        }

        $this->manager->setFormula($asset['name'], array(
            $asset['input'],
            $asset['filter'],
            $asset['options']
        ));
    }