fix: use Reader interface