only ignore the toplevel data directory
use vals instead of def