better factoring of modules