working on making a more deterministic/chacheable provider/factory getter