just writing these readers by hand. fixed a bug, too