modularized userCF some more