Something I've been doing other places in the core (and seems to work well) is putting a ptr typedef inside the class it is a pointer for like this:

```c++
class Foo {
  public:
    typedef boost::shared_ptr<Foo> Ptr;
}
```

And to use it outside the class you refer to it like this: `Foo::Ptr`.  You don't have to change - just an idea.