draft work integrated into cachematrix.R