+ sample reading function