use test_reader instead of test_dataframe for simple instances
support for custom check functions
use test_reader in other non-trivial instances
use test_reader everywhere
remove test_dataframe code