add column and row protocols
rename function
core.matrix implementation clean-up