Switched to shared_ptr, implemented index function
Implemented remainder of DataSource class