going to use matrix lib