Optimisations for factor