minor refactoring, use of can_read method