CS 540 Class Project: Smart Pointer implementation