implementing matrix factorization (In progress)