add matrix submodule
refactor
refactor