Revert "Removed abstract class for reader, and [untested] string class that extended it"

This reverts commit 2f52402b27f1b26fb0f23f96057841bd1ac27473.