1st try at cachematrix