Matrix4 completed, but needs to be refactored to use arraylists.