First attempt at supporting custom readers/writers