Made it a library, added delegates, shared_ptr for file streams and disks.