Pretty Substantial Rewrite, Now Both Reads and Writes Multiple Datasource in One Call

Also gets rid of all string use inside library