rename factory to be consistent