renamed substrate to petri because it was npm-taken (also shorter -> cooler)