flesh out more readers. worried about circular dependencies