Updated to be able to initialize and set matrix directly via input, no need for arguments to be matrix)
Updated coments and minor additions