pointer operator->() { return boost::addressof(data_.first()); }
const_reference operator*() const { return data_.first(); }
const_reference get() const { return data_.first(); }
reference operator*() { return data_.first(); }
reference get() { return data_.first(); }