public function setMeta($meta, $value = null)
	{
		$metas = is_array($meta) ? $meta : array($meta => $value);
		
		foreach ($metas as $m => $v) {
			if (!is_object($m)) {
				$m = $this->findMetaByNameOrCreate($m);
			}
			
			if (!$m || !$m instanceof Eloquent) {
				continue;
			}
			
			if ($this->hasMeta($m)) {
				if (is_null($v)) {
					$this->unsetMeta($m);
					continue;
				}
				
				$attributes = array(
					'value'           => $v,
					'meta_updated_at' => date('Y-m-d H:i:s'),
				);
				$this->metas()->updateExistingPivot($m->id, array_merge($this->metableTableSyncAttributes(), $attributes));
				$this->metas->find($m->id)->pivot->value = $v;
				$this->metas->find($m->id)->pivot->meta_updated_at = $attributes['meta_updated_at'];
			}
			else {
				if (is_null($v)) {
					continue;
				}
				
				$this->metas()->attach($m, array_merge($this->metableTableSyncAttributes(), array(
					'value'           => $v,
					'meta_created_at' => date('Y-m-d H:i:s'),
					'meta_updated_at' => date('Y-m-d H:i:s'),
				)));
				
				$m->increment('num_items');
				
				$this->metas->add($m);
			}
		}
		
		return $this;
	}