switched focus from object pointers to object references
* simple message calls are left for pointers for backward compatibility
* mutators now work on references only
* using ptr_vector in the example (instead of manual new/delete)