check files recursively (closes #29)