rewrote (C): subroutine interface to use matrix struct
change: extracted util functions into seperate files, add: C's sum funciton