factory usage