Added canFabricate and require can now take functions