cachematrix assignment exercise