Smart Pointers

6.1 Box: Single owner, can be mutable

6.2 Rc: multiple immutable owners

6.3 RefCell: multiple owners, can be mutable, runtime checked