The Z axis dilemma I had was that I made the mistake of forgetting the difference between openGL and DirectX when it comes to the camera, i.e. the camera looks down the -Z axis rather than the +Z axis. This meant that for a long time my x axis were flipped over and that caused a bit of confusion when I was trying to implement the swing component. Luckily I sorted this out and all is well. Apart from I now have to rotate all my models 180 degrees to get them in the correct orientation.
Keep it easy :)