working factors, but inefficient...