please don't use raw pointers :-/
either return a shared_ptr or just a simple object