update matrix4 to be more use frendly
add quaterion