cachematrix fufills the requirement for the second assignment