add Vector4D type
implement matrix type