improve simple-factors to use vector