Use of pointers is discouraged (use a boost smart pointer or a reference).