Calculate primitive reference frame.

Hi,
i want to rotate a primitive such as that it will look at a given point.
To do that i have tried to get the reference frame of the primitive, but all the vectors point up. Why is that? What am i doing wrong?

here is the snippet:
var front = Cesium.Matrix4.multiplyByPoint(modelMatrix, new Cesium.Cartesian3(1, 0, 0), new Cesium.Cartesian3());
                        var right = Cesium.Matrix4.multiplyByPoint(modelMatrix, new Cesium.Cartesian3(0, 1, 0), new Cesium.Cartesian3());
                        var up = Cesium.Matrix4.multiplyByPoint(modelMatrix, new Cesium.Cartesian3(0, 0, 1), new Cesium.Cartesian3());

Don't know what i was thinking. Here is the correct code.

var front = Cesium.Matrix3.multiplyByVector(Cesium.Matrix4.getRotation(modelMatrix,new Cesium.Matrix3()), new Cesium.Cartesian3(1, 0, 0), new Cesium.Cartesian3());
                        var right = Cesium.Matrix3.multiplyByVector(Cesium.Matrix4.getRotation(modelMatrix, new Cesium.Matrix3()), new Cesium.Cartesian3(0, 1, 0), new Cesium.Cartesian3());
                        var up = Cesium.Matrix3.multiplyByVector(Cesium.Matrix4.getRotation(modelMatrix, new Cesium.Matrix3()), new Cesium.Cartesian3(0, 0, 1), new Cesium.Cartesian3());