What does your rotate method look like?
With 3 dimensional transformations, it is essential to combine the matrices correctly (ie in the correct order)
With 3 dimensional transformations, it is essential to combine the matrices correctly (ie in the correct order)