updated: now incorporates forms which require ingredients from other forms