refactor to TorqueFactory