added warn; tweaked reader