add recipe factory with block in constructor